# -*- coding: utf-8 -*-
import urllib2
import json
import re
import codecs
import sys
from bs4 import BeautifulSoup
import time
import os
# g_test_url = 'http://www.mencius.gov.cn/news05/zhaotoubiao/zhengfucaigouzhaobiaogonggao/18710.html'
g_test_url = 'http://www.mencius.gov.cn/news05/zhaotoubiao/zhengfucaigouzhaobiaogonggao/18612.html'
g_url = 'http://www.mencius.gov.cn/news05/zhaotoubiao/zhengfucaigouzhaobiaogonggao/'
g_url_prefix = 'http://www.mencius.gov.cn'
g_pattern = '.*html'
g_pattern1 = '">.*</'
gov_Info = {'govInfo': []}
g_debug = False


class Parse(object):
    def __init__(self, url_list):
        self.url_list = url_list  # 传入要解析初始网页链接
        self.href_list = []  # 存放初始网页中的超链接
        self.res_array_all = []  # 解析结果
        self.div = []  # xml 中的<div
        self.pattern_func = [self.parse_pattern1,
                             self.parse_pattern2,
                             self.parse_pattern3,
                             self.parse_pattern4,

                             self.parse_pattern_tb_1,
                             self.parse_pattern_tb_2

        ]
        path_dir = os.path.dirname(os.path.realpath(__file__))
        self.json_file_name = path_dir+'/../IR/gov_info.json'

    def safe_float(self,obj):
        float_val = None
        try:
            float_val = float(obj)
        except ValueError:
            float_val = None
        return float_val
    def json_dumps(self,res_array_all):  # 非表格的解析方法
        print 'writing to ',self.json_file_name,' ...'
        res_set_all = []
        w = open(self.json_file_name, 'w')

        for i in res_array_all:
            res_map = {'time':i[3],'projectName':i[1],'buyerName':i[0],'money':i[2]}
            # res_set_all.append(res_map)
            gov_Info['govInfo'].append(res_map)
        print gov_Info
        output = json.dumps(gov_Info, ensure_ascii=False)
        # w.write(output.strip().encode('utf-8'))
        w.write(output.strip())
        w.close()

    def parse_main_page(self):  # 初始界面的解析方法
        global g_pattern
        # 发送请求,获取链接
        # content = urllib2.urlopen(self.url).read()
        # content = content.decode('gbk').encode('utf-8')

        for url in self.url_list:
            content = self.parse_url(url)

            if not content or content == "":
                print 'empty content,network not good'
                return
            # beautifulsoup解析
            soup = BeautifulSoup(content, "html.parser")
            # 获取所有为div 且class为box的项
            div = soup.findAll('div', {'class': 'box'})
            self.div = div

            for i in self.div:
                for j in i.findAll('a'):
                    temp = j.get('href')
                    href_list = re.findall(g_pattern, temp)  # 正则匹配得到所需的链接
                    if href_list:
                        self.href_list.append(href_list[0])
            time.sleep(0.2)


    def parse_child(self):  # 解析初始界面中的链接,
        index = 0
        self.res_array_all = []
        res_array_all = []

        for i in self.href_list:
            # 发送请求,获取内容
            content = self.parse_url(g_url_prefix + i)

            print 'get page OK!'
            # print content
            res = self.parse_all_pattern(content)
            print 'item %d' % index
            if res:
                for i in res:
                    print i
                res_array_all.append(res)
            else:
                print 'no pattern matches'

            index += 1
            # print content
            # beautifulsoup
            # soup = BeautifulSoup(content, "html.parser")

            # print soup

            time.sleep(0.2)#s!!
            # #for test
            # if index >= 2:
            #     break


        self.res_array_all = res_array_all


    def write_to_IR(self):
        if (self.res_array_all )and (self.res_array_all != []):
            self.json_dumps(self.res_array_all)

    def parse_url(self, url):
        """

        :rtype : object
        """
        global g_url_prefix
        req = urllib2.Request(url)
        req.add_header('Referer', g_url_prefix)
        req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0')
        try:
            content = urllib2.urlopen(req).read()
        except Exception as e:
            print e
            content = ""
            return
        content = content.decode('gbk').encode('utf-8')
        return content

    # 一般在UTF8中，ASCII字符集用1Byte长度来表示，西欧字符集用2Byte长度来表示
    # a set of pattern:
    # return (OK,[buyerName,projectName,money,time]
    # 生活垃圾压缩设备采购项目中标公示
    # page1:邹城市路灯管理监控系统采购项目中标公示(有两个这个页面)
    def parse_pattern1(self, content):
        global g_debug
        try:
            res = ['', '', '', '']


            # <title>生活垃圾压缩设备采购项目中标公示<title>
            # <title>邹城市路灯管理监控系统采购项目中标公示</title>
            s_start = 'title>'
            p = content.find(s_start)
            q1 = content[p:].find('采购项目预中标公示')
            if q1 == -1:
                q1 = content[p:].find('采购项目中标公示')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()

            # 中标单位：<U>合肥市劲旅环卫设备有限公司</U></B>
            # 中标单位：<B style="mso-bidi-font-weight: normal"><U>中国电子科技集团公司第五十研究所</U></B>
            s_start = '中标单位：<'
            p = content.index(s_start)
            s_start_2 = 'U>'
            q1 = content[p:].find(s_start_2)
            q2 = content[p:].find('</U>')
            if p + q1 + len(s_start_2) < p + q2:
                s_res = content[p + q1 + len(s_start_2):p + q2]
            else:
                s_res = ''
                return (False, [])
            res[0] = s_res.strip()


            # 中标金额：<U>捌拾壹万玖仟元整（￥</U></B><B style="mso-bidi-font-weight: normal"><U>819000.00</U></B>
            # 中 标 价：<B style="mso-bidi-font-weight: normal"><U><SPAN lang=EN-US>1388150</SPAN></U></B>元<SPAN lang=EN-US>
            # 中 标 价：<B style="mso-bidi-font-weight: normal"><U>1388150</U></B>元
            p = content.find('￥')
            if p == -1:
                p = content.find('中 标 价：')
                if p != -1:
                    content = content.replace('<SPAN lang=EN-US>', '')  # TODO:a better way to solve it?
                    content = content.replace('</SPAN>', '')
                    p = content.find('中 标 价：')
                else:
                    s_res = ''
                    return (False, [])

            s_start_2 = '<U>'
            q1 = content[p:].find(s_start_2)
            q2 = content[p + q1:].find(r'</U>')
            if p + q1 + len(s_start_2) < p + q1 + q2:
                s_res = content[p + q1 + len(s_start_2):p + q1 + q2]
            else:
                s_res = ''
                return (False, [])

            res[2] = s_res.strip()

            # 时间：2010-12-16 00:00:00&nbsp;&nbsp;来源：本网&nbsp;&nbsp;
            p = content.find('时间：')
            q1 = content[p:].find(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                print Exception, ":", e, ' <', self.parse_pattern1.__name__, '>'
            return (False, [])

        return (True, res)

    # 交警现场执法设备项目预中标公示
    def parse_pattern2(self, content):
        try:
            res = ['', '', '', '', '']
            # <td><h1>交警现场执法设备项目预中标公示</h1></td>
            s_start = '<td><h1>'
            p = content.index(s_start)
            q1 = content[p:].index('预中标公示')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()


            # <BR>中标单位：济宁晨光信息科技有限公司 <BR>中标金额：玖万伍仟贰佰捌拾元整（95280.00元整） <BR>
            s_start = '中标单位：'
            p = content.index(s_start)
            q1 = content[p:].find(' ')
            s_res = ''
            if p + len(s_start) < p + q1 and q1 != -1:
                s_res = content[p + len(s_start):p + q1]
                if s_res.find('<') != -1 or s_res.find('/') != -1:  # because of the intersection of pattern 4 </P>
                    s_res = ''
                    return (False, [])
            else:
                s_res = ''
                return (False, [])
            res[0] = s_res.strip()

            s_start = '中标金额：'
            p = content.index(s_start)
            s_ch_paren = '（'
            q1 = content[p:].index(s_ch_paren)
            q2 = content[p + q1:].index('元整')
            s_res = ''
            if p + q1 + len(s_ch_paren) < p + q1 + q2:
                s_res = content[p + q1 + len(s_ch_paren):p + q1 + q2]
            else:
                s_res = ''
                return (False, [])
            res[2] = s_res.strip()

            p = content.index('时间：')
            q1 = content[p:].index(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                print Exception, ":", e, ' <', self.parse_pattern2.__name__, '>'
            return (False, [])
        return (True, res)

    # 多媒体设备采购项目中标公示
    def parse_pattern3(self, content):
        try:
            res = ['', '', '', '', '']
            s_start = '<td><h1>'
            p = content.find(s_start)
            q1 = content[p:].find('中标公示')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()


            # widow-orphan" align=left>成交供应商：山东三毛信息产业有限公司</P>
            s_start = '成交供应商：'
            p = content.find(s_start)
            q1 = content[p:].find('</P>')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[0] = s_res.strip()

            # align=left>报价：142000.00元           得分：90.228分</P>
            s_start = '报价：'
            p = content.find(s_start)
            q1 = content[p:].find('元')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[2] = s_res.strip()

            p = content.find('时间：')
            q1 = content[p:].find(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                print Exception, ":", e, ' <', self.parse_pattern3.__name__, '>'
            return (False, [])
        return (True, res)

    # 小学科学探究实验室项目预中标公示
    # 实验室设备预中标公示
    # 墓石材料预中标公示 #TODO: 中标金额：贰拾柒万零肆佰元整 汉字转数值
    # 高考网上巡查系统预中标公示
    # 多媒体教学设备预中标公示
    # 邹城市文化馆办公家具采购项目中标结果公示 :与前面格式完全无关,且仅此一份,不作处理
    # 邹城市妇幼保健院医用电梯设备采购与安装项目结果公示
    # 邹城市千泉社区卫生服务中心牙科CBCT设备采购项目评标结果公示 有多个中标候选人,不作处理
    # ZZC2011003-G01邹城市人民医院医用制氧设备谈判项目预中标公示
    def parse_pattern4(self, content):
        try:
            # '<title>小学科学探究实验室项目预中标公示</title>'
            res = ['', '', '', '', '']
            s_start = 'title>'
            p = content.find(s_start)
            q1 = content[p:].find('预中标公示')
            if q1 == -1:
                q1 = content[p:].find('中标公示')
            if q1 == -1:
                q1 = content[p:].find('结果公示')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()


            # 中标单位：江苏锡光科教设备有限公司</P>
            # 情况2:中标单位：济南安川机电设备有限公司<SPAN
            # 情况3:预成交供应商:邯郸派瑞气体设备有限公司
            # 情况4:预成交供应商：山东三毛信息产业有限公司  #冒号不同
            s_start = '中标单位：'
            p = content.find(s_start)
            if p == -1:
                s_start = '预成交供应商：'
                p = content.find(s_start)
            if p == -1:
                s_start = '预成交供应商:'
                p = content.find(s_start)

            q1 = content[p:].find('<')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[0] = s_res.strip()

            # 中标金额：34800元</P>
            # 情况2:中标金额：叁拾玖万伍仟壹佰捌拾元整（<SPAN lang=EN-US>395180.00</SPAN>元）
            # 情况3:预成交金额：柒拾捌万捌仟元整（788000.00元）
            s_start = '中标金额：'
            p = content.find(s_start)
            if p == -1:
                s_start = '预成交金额'
                p = content.find(s_start)

            # （小写）65000.00
            s_start_2 = "（小写）"
            p1 = content[p:].find(s_start_2)
            if p1 != -1:
                p = p + p1 + len(s_start_2)
            else:
                s_start_3 = '（'
                p2 = content[p:].find(s_start_3)  # condition 2
                if p2 == -1:
                    p = p + len(s_start)
                else:
                    p = p + p2 + len(s_start_3)
            s_res = ''
            content_tmp = content[p:]
            content_tmp = content_tmp.replace('<SPAN lang=EN-US>', '', 1)
            content_tmp = content_tmp.replace('</SPAN>', '', 1)
            q2 = content_tmp.find('万元')
            if q2 != -1:
                # 中标金额：壹拾肆万贰仟元整 14.20万元</P>
                q1 = content_tmp.find(' ')
                q2 = content_tmp[q1:].find('万元')
                s_res = content_tmp[q1 + 1:q1 + q2]
                s_tmp_res = float(str(s_res))
                s_tmp_res *= 10000
                s_tmp_res = str(s_tmp_res)
                s_res = s_tmp_res.encode('utf-8')
            else:
                q1 = content_tmp.find('元')
                if q1 == -1:
                    # 叁拾叁万伍仟元整（335000.00）
                    q1 = content_tmp.find('）')
                if q1 != -1:
                    s_res = content_tmp[:q1]
                    float_res = self.safe_float(s_res.strip())
                    if float_res == None:#说明s_res内容中不全是数字
                        #中标金额：贰拾柒万零肆佰元整
                        ca2n = CapitalAmount2Number(s_res)
                        tmp_res = ca2n.convert()
                        if tmp_res == -1:
                            s_res = ''
                            return (False, [])
                        else:
                            s_res = str(tmp_res).encode('utf-8')


                else:
                    s_res = ''
                    return (False, [])
            res[2] = s_res.strip()

            p = content.find('时间：')
            q1 = content[p:].find(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                f = sys.exc_info()[2].tb_frame.f_back
                print Exception, ":", e, ' <', str(sys._getframe().f_code.co_name), '> line:', str(f.f_lineno)
            return (False, [])
        return (True, res)


    # 邹城市水利局水资源实时监控与管理系统采购项目中标公示
    # 邹城市太平镇卫生院全自动生化分析仪采购项目成交结果公示
    # 邹城市妇幼保健院血气分析仪成交结果公示
    # 邹城市第二实验小学机器人实验室采购项目成交结果公示
    # 邹城市妇幼保健院新生儿呼吸机设备采购项目成交结果公示
    # 邹城市妇幼保健院新生儿心电监护仪及中央监护系统采购项目成交结果公示
    # 邹城市人民医院资产管理系统采购项目成交结果公示

    # 邹城市房管局预售资金监管系统采购项目成交结果公示
    # 邹城市中心店镇政府电子监控采购项目成交结果公示
    # 邹城市人民医院资产管理系统采购项目成交结果公示
    # ...
    # 邹城市教育系统音、体、美、卫生健康教学器材采购项目成交公示:TODO:多行
    # ...
    # 邹城市公共资金监管业务及电子监察平台建设预成交结果公示
    def parse_pattern_tb_1(self, content):
        try:
            res = ['', '', '', '', '']
            s_start = 'title>'
            p = content.find(s_start)
            q1 = content[p:].find('预中标公示')
            if q1 == -1:
                q1 = content[p:].find('中标公示')
            if q1 == -1:
                q1 = content[p:].find('预成交结果公示')
            if q1 == -1:
                q1 = content[p:].find('成交结果公示')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()


            # 情况1:三、采购人名称：</SPAN><SPAN style="LINE-HEIGHT: 150%; FONT-FAMILY: 宋体; COLOR: black; FONT-SIZE: 12pt; mso-bidi-font-family:
            # 宋体; mso-font-kerning: 0pt">邹城市水利局</SPAN>
            # 情况2:三、采购人名称：邹城市房产管理局<SPAN lang=EN-US>
            s_start = '采购人名称：'
            p = content.find(s_start)
            p = p + len(s_start)
            if content[p:p + 1] == '<':  # condition 1 </SPAN>
                q1 = content[p:].find('>')  # ><SPAN
                q1 = p + q1 + 1
                q2 = content[q1:].find('>')  # >邹城市水利局</SPAN>
                q1 = q2 + q1 + 1
                s_start = q1
                q2 = content[q1:].find('</')  # </SPAN
            else:
                q1 = p  # condition 2
                q2 = content[q1:].find('<')

            s_res = ''
            if q1 < q1 + q2:
                s_res = content[q1:q1 + q2]
            else:
                s_res = ''
                return (False, [])
            res[0] = s_res.strip()

            s_start = '预成交明细：'
            p = content.find(s_start)
            if p == -1:
                s_start = '成交明细'
                p = content.find(s_start)
            q = content[p:].find('</TABLE')
            content_tmp = content[p + len(s_start):p + q]

            soup = BeautifulSoup(content_tmp, "html.parser")
            tb = soup.find(name='tbody')  # find the first one
            tb_td = tb.findAll('td')  # because some <td> has more than one <p>
            # the first row is the title ,we need to find the money value under the title similar to '预成交金额（元）' 's
            s_money_title = u'成交金额（元）'  # or 预成交金额（元）
            s_money_index = 0

            for j in tb_td:
                tb_p = j.find(name='p')
                # result in the first p
                i = tb_p
                if i.text.find(s_money_title) != -1:
                    s_money_index
                    # print i.text
                    break
                s_money_index += 1
            tb_p_m = (tb_td[len(tb_td) / 2 + s_money_index]).find(name='p')
            s_money_value = (tb_p_m.text).encode('utf-8')
            s_money_value = s_money_value.replace('元', '')
            p = s_money_value.find('万')
            if p != -1:
                s_money_value = s_money_value[:p]
                s_money_value = (str(float(s_money_value) * 10000)).encode('utf-8')
            res[2] = s_money_value

            p = content.find('时间：')
            q1 = content[p:].find(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                f = sys.exc_info()[2].tb_frame.f_back
                print Exception, ":", e, ' <', str(sys._getframe().f_code.co_name), '> line:', str(f.f_lineno)
            return (False, [])
        return (True, res)

    # TODO:multi row
    # 微机室桌凳政府采购项目中标结果
    # ZZC2010037-A07音响设备政府采购项目中标结果
    # ...
    # 办公自动化设备政府采购项目中标结果
    def parse_pattern_tb_2(self, content):
        try:
            res = ['', '', '', '', '']
            s_start = 'title>'
            p = content.find(s_start)
            q1 = content[p:].find('预中标公示')
            if q1 == -1:
                q1 = content[p:].find('中标公示')
            if q1 == -1:
                q1 = content[p:].find('预成交结果公示')
            if q1 == -1:
                q1 = content[p:].find('成交结果公示')
            if q1 == -1:
                q1 = content[p:].find('中标结果')
            s_res = ''
            if p + len(s_start) < p + q1:
                s_res = content[p + len(s_start):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[1] = s_res.strip()

            # todo:
            sum = 0.0
            s_start = '<TBODY>'
            p = content.find(s_start)

            soup = BeautifulSoup(content[p:], 'html.parser')
            soup = soup.findAll('tbody')
            soup = soup[0]
            tr = soup.findAll('tr')

            flag = True
            i = 0
            for i in range(2, len(tr)):
                td = tr[i].findAll('td')
                if len(td) < 4:
                    break
                num = td[2].text.encode('utf-8')
                num = num.strip()
                zong = num.find('宗')
                if zong != -1:
                    num = num[0:zong]

                money = td[3].text.encode('utf-8')
                money = money.strip()

                sum += float(num) * float(money)
                if flag:
                    buyername = td[7].text.encode('utf-8')
                    res[0] = buyername.strip()
                    flag = False
            res[2] = str(sum).encode('utf-8')

            p = content.find('时间：')
            q1 = content[p:].find(' ')
            s_tmp = '时间：'
            if p + len(s_tmp) < p + q1:
                s_res = content[p + len(s_tmp):p + q1]
            else:
                s_res = ''
                return (False, [])
            res[3] = s_res.strip()
        except Exception, e:
            if g_debug:
                f = sys.exc_info()[2].tb_frame.f_back
                print Exception, ":", e, ' <', str(sys._getframe().f_code.co_name), '> line:', str(f.f_lineno)
            return (False, [])
        return (True, res)


    def parse_all_pattern(self, content):
        i = 1
        global g_debug
        for func in self.pattern_func:
            if g_debug:
                print 'parse_pattern ', i
            (ret, res) = func(content)
            if ret:
                return res
            i = i + 1

        return None

    def test_single_url(self):
        url = self.url_list[0]
        content = self.parse_url(url)
        print 'get page OK!'
        # print content
        res = self.parse_all_pattern(content)
        res_array_all = []
        if res:
            for i in res:
                print i
            res_array_all.append(res)
        else:
            print 'no pattern matches'
        self.res_array_all = res_array_all
        self.json_dumps(res_array_all)
        print '-------------'

class CapitalAmount2Number:
    def __init__(self, cf):
        self.cf = cf
        self.mp = {'壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '拾': 10,'佰': 100,
                   '仟': 1000,'万': 10000, '亿': 10000000, '元': 1, '角': 0.1, '分': 0.01, '零': 0, '整': -1}

    def enum(self,**enums):
        return type('Enum', (), enums)



    def convert(self):  # 每个大写数字字符是3个字节
        step = 3
        content = []

        for i in range(0, len(self.cf), 3):
            tmp = self.cf[i:i + step]
            content.append(self.mp[tmp])
        stateMachine = self.enum(ZERO=0,ONE=1,TWO=2,THREE=3)
        state = stateMachine.ZERO
        res = 0.0
        cur = -1
        rate = 0.0
        tmp_rate = 0.0
        index = 0
        if content[-1] != -1:
            content.append(-1)
        try:
            i = 0
            while i < len(content):
                if state == stateMachine.ZERO:
                    cur = content[i]
                    state = stateMachine.ONE

                elif state == stateMachine.ONE:

                    tmp_rate = content[i]
                    if tmp_rate != -1:
                        state = stateMachine.TWO
                    else:
                        state = stateMachine.THREE

                elif state == stateMachine.TWO:
                    if tmp_rate > rate:
                        res = (res+cur)*tmp_rate
                    else:
                        res = res + cur*tmp_rate

                    rate = tmp_rate

                    state = stateMachine.ONE
                    cur = content[i]
                    if cur == 0:
                        i += 1
                        if i < len(content):
                            cur = content[i]

                elif state == stateMachine.THREE:
                    break
                i += 1


        except Exception,e:
            print Exception, ":", e
            return -1
        return res



if __name__ == '__main__':
    url_list = ['http://www.mencius.gov.cn/news05/zhaotoubiao/zhengfucaigouzhaobiaogonggao/','http://www.mencius.gov.cn/news05/zhaotoubiao/zhengfucaigouzhaobiaogonggao/index_2.html']

    parse = Parse(url_list)
    parse.parse_main_page()

    parse.parse_child()
    parse.write_to_IR()

    # parse = Parse([g_test_url])
    # parse.test_single_url()





